Readme for GBOOST 2.0

GBOOST 2.0 is a GPU implementation of advanced BOOST method (with covariates adjustment) based on the CUDA technology by Nvidia. GBOOST 2.0 has been tested on a machine with Nvidia GTX 580 graphics card with Windows 10 x64 and CUDA 7.5. If you encounter any problem about using GBOOST 2.0, you are welcome to contact the author at mwangaq@connect.ust.hk.

===== Recommended platform, software version and hardware for GBOOST 2.0=====================
CPU: Intel(R) Core(TM) i5-4570 CPU 3.20 GHz 
Main Memory: 4 GB or above                
Graphics Card: Nvidia GTX 580           
Operation System: Windows 10 x64           
CUDA Driver: 7.5 or above                 
Please refer to https://developer.nvidia.com/cuda-gpus for the list of GPUs supported by CUDA.


===== Compiling ======================================================================
In Windows, we use Visual studio 2013 to compile and build the executable file. Put the 4 files: main.cpp, boost_CUDA_kernel.cu, utility.cpp, utility.h in the Visual Studio project and we will be able to build it.

In linux, In we use gcc to compile the project.
	1. Put the 4 source files along with the 'makefile' file in the same path.
	2. Change directory to the path and type 'make' in the command line.
	3. chmod +x ./GBOOST2
	The executable file will be generated.



===== Program Usage ======================================================================
Usage is 
	GBOOST2  -i inputfilelist.txt -n numofCov -tt testThreshold -o outputprefix
		-i  Input List File
		-n  Number of Covariates Considered
			Default : 1
		-tt Test Threshold
			Default : 30.0 
		-o  Output File Prefix
			Default : ""

Examples :
	The sample data "example_simu.txt" is for one covariate case. Users can use following command.
	 
	GBOOST2 -i filenamelist.txt -n 1 -tt 40 -o output_
	
	The program will output interaction record file 
		'output_InteractionRecord.txt' 


====Input File Format========================================================================
Input file is a n*(p+ncov+1) matrix, where n is the number of samples, p is the number of SNPs, ncov is the number of covariates taken into consideration, the extra "1" is the phenotype. Phenotype must be the first digit in each row.
	Example:
		Phenotype Cov1 Cov2 SNP1 SNP2 SNP3 SNP4 SNP5 ...
   	sample1	0           1	 1    2    0    1    2    1
   	sample2	1	    0    1    1    1    2    0    1 		



====Output File Format========================================================================
	Example:
		Pair_index  SNP1  SNP2 	 Statistic_test_value
		Pair No.0:    0    1           31.1396

	